Typically, during execution of an instruction stream, a single instruction is executed, a plurality of tests are performed, and then a next instruction is executed, etc. The tests that are performed include, for instance, checking whether a page boundary is being crossed, checking whether a particular processing mode is active, such as certain debugging modes, and determining an appropriate execution mode. These tests are performed after each instruction to ensure that instruction execution proceeds correctly.
Although the performance of these tests ensures proper instruction execution, it is very costly. That is, the performance of these tests after each instruction considerably impacts system performance.